import axios from 'axios';

import { APIException } from '@/utils/exception/exception';

const baseUrl = "/"
/** 简单封装一下axios请求对象 */
const axiosInstance = axios.create({
  baseURL: baseUrl,
});

// 模拟获取token的方法
const getToken = () => 'token';

// 统一拦截请求，附带上token数据
axiosInstance.interceptors.request.use((config) => {
  config.headers.Authorization = config.headers?.authorization || getToken();

  return config;
});

// 拦截响应数据，当不后端返回的数据code
axiosInstance.interceptors.response.use((response) => {
  if (response.data && 'code' in response.data && response.data.code !== 0) {
    // 抛出一个自定义异常，方便在全局的异常处理器捕获处理（如果调用法没有处理的话）
    return Promise.reject(new APIException(response.data));
  }

  return response;
});

export { axiosInstance };
